class RequestMapping:
    def __init__(self, path):
        self.path = path

    def __call__(self, func):
        def inner():
            return ['GET', 'POST'], self.path, func

        return inner


class GetMapping(RequestMapping):
    def __init__(self, path):
        super().__init__(path)

    def __call__(self, func):
        def inner():
            return ['GET'], self.path, func

        return inner


class PostMapping(RequestMapping):
    def __init__(self, path):
        super().__init__(path)

    def __call__(self, func):
        def inner():
            return ['POST'], self.path, func

        return inner
